package com.projectplace.api;

/*
 * Copyright (c) 2011 Projectplace International AB
 * Permission is hereby granted, free of charge, to any person 
 * obtaining a copy of this software and associated documentation 
 * files (the "Software"), to deal in the Software without restriction, 
 * including without limitation the rights to use, copy, modify, merge, 
 * publish, distribute, sublicense, and/or sell copies of the Software, 
 * and to permit persons to whom the Software is furnished to do so, 
 * subject to the following conditions:The above copyright notice and this 
 * permission notice shall be included in all copies or substantial portions of the Software.
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 
 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

import org.apache.http.HttpResponse;

import android.os.Handler;
import android.widget.ImageView;

import com.projectplace.api.Callback.Callback;
import com.projectplace.api.CallbackWrapper.CallbackWrapper;

/**
 * Methods to get container ids that can be used to get document, tasks, issues and calendar more info on api.projectplace.com.
 * The reason you need this is cause this is the root id for each category
 * @author johanma
 *
 */

public class ProjectApi implements Api {
	
	//Singelton-pattern
	private ProjectApi() {
		super();
	}

	public static void getProjectTools(PPClient client,
			final Handler handler, String projectID,
			final Callback.ResponceListenerProjectTools response) {
		String fetchUri = PROJECTPLACE_PROJECT_TOOLS + projectID + "/tools.json";
		PPClient.sendRequest(fetchUri, new getInfoHandler() {
			public void onFinish(HttpResponse user, Error err) {
				CallbackWrapper.GetProjectTools tempWrap = new CallbackWrapper.GetProjectTools(response);
				tempWrap.setResponse(user, err);
				handler.post(tempWrap);
			}
		});
	}

	/**
	 * Could use this or get avatar with projectID both will return the same thing
	 * @param client
	 * @param userID
	 * @param view
	 */
	public static void getProjectLogo(PPClient client, String userID,
			ImageView view) {
		client.sendAvatarRequest(PROJECTPLACE_USER_AVARTAR + userID, userID,
				view);
	}
}
